/*
 * 版权所有 (C) 2018 知启蒙(ZHIQIM) 保留所有权利。
 * 
 * 欢迎到知启蒙网站（https://www.zhiqim.com）购买正版软件，知启蒙还提供许多开源框架和软件。
 * 
 * 1、本软件产品所有源代码受《中华人民共和国著作权法》和其他有关法律、法规的保护，其所有知识产权归湖南知启蒙科技有限公司所有；
 * 2、禁止复制和修改。不得复制修改、翻译或改编本软件所有源代码，或者基于本软件产品创作衍生作品；
 * 3、禁止进行逆向工程。不得对本软件的源代码进行逆向工程、反编译或试图以其他方式发现软件的源代码；
 * 4、个别授权：如需进行商业性的销售、复制、分发，包括但不限于软件销售、预装、捆绑等，必须获得知启蒙的书面授权和许可；
 * 5、保留权利：本注释未明示授权的其他一切权利仍归知启蒙所有，任何人使用其他权利时必须获得知启蒙的书面同意。
 */
package net.redxyz.repost.service.task.user;

import net.redxyz.repost.service.dao.UserDao;
import net.redxyz.repost.service.dao.SysParamDao;

import org.zhiqim.kernel.logging.Log;
import org.zhiqim.kernel.logging.LogFactory;
import org.zhiqim.kernel.schedule.Task;
import org.zhiqim.kernel.util.DateTimes;

/**
 * 订购关系同步日志<br>
 * 
 * 每十分钟同步上次时间前3分钟(防止时钟不准或淘宝未保存遗漏)，至当前时间的用户订购关系
 * 同步完成更新时间戳到配置文件中。
 * 
 * @version v1.0.0 @author zouzhigang 2014-3-20 新建与整理
 */
public class UserOrderSyncTask implements Task
{
    private static final Log log = LogFactory.getLog(UserOrderSyncTask.class);
    
    public void execute()
    {
        String beginTime = null;
        String endTime = DateTimes.getPreviousDateTimeString();
        
        try
        {
            beginTime = SysParamDao.getString("timer.param", "lastOrderSyncTime", "2019-01-01 00:00:00");
            if (DateTimes.compareMinute(endTime, beginTime) < 60)
            {
                log.info("查询订购关系任务["+beginTime+"]["+endTime+"]未到60分钟");
                return;
            }
            
            log.info("查询订购关系任务["+beginTime+"]["+endTime+"]开始...");
            
            int size = UserDao.doUpdateOrder(beginTime, endTime);
            
            endTime = DateTimes.getPreviousDateTimeStringBySecond(endTime, 60 * 3);//把时间提前到3分钟吧,可能时钟不准
            SysParamDao.doUpdate("timer.param", "lastOrderSyncTime", endTime);
            
            log.info("查询订购关系任务["+beginTime+"]["+endTime+"]结束，共查询到["+size+"]个");
        }
        catch (Exception e)
        {
            log.error("查询订购关系任务["+beginTime+"]["+endTime+"]异常，结束本次任务", e);
        }
        
    }

}
